kanzi::MainLoopTaskProfilerRegistry Class Reference

The registry of main loop task profilers. More...

#include <kanzi/core/profiling/main_loop_task_profiler_registry.hpp>

Inheritance diagram for kanzi::MainLoopTaskProfilerRegistry:
kanzi::ProfilerRegistry< MainLoopTaskProfiler >

Public Member Functions

 MainLoopTaskProfilerRegistry ()
 Constructor. More...
 
void initialize (optional< size_t > bufferSizeOverride)
 
size_t getMainLoopCounter () const
 To get the value of the main loop counter, use getMainLoopCounter(). More...
 
void incrementMainLoopCounter ()
 Increments the main loop counter. More...
 
- Public Member Functions inherited from kanzi::ProfilerRegistry< MainLoopTaskProfiler >
void registerProfiler (ProfilerSharedPtr profiler)
 Adds a new profiler to the registry. More...
 
void unregisterProfiler (ProfilerSharedPtr profiler)
 Removes a profiler from the registry. More...
 
ProfilerContainer::const_iterator beginProfilers () const
 Gets iterator to the begging of the profiler container. More...
 
ProfilerContainer::const_iterator endProfilers () const
 Gets iterator to the end of the profiler container. More...
 

Public Attributes

MainLoopTaskProfilerSharedPtr m_animationProfiler
 Main loop animation profiler. More...
 
MainLoopTaskProfilerSharedPtr m_renderingProfiler
 Main loop rendering profiler. More...
 
MainLoopTaskProfilerSharedPtr m_applicationEventsProfiler
 Main loop application events profiler. More...
 
MainLoopTaskProfilerSharedPtr m_appUpdateProfiler
 Main loop application update profiler. More...
 
MainLoopTaskProfilerSharedPtr m_resourceDeploymentProfiler
 Main loop resource deployment profiler. More...
 
MainLoopTaskProfilerSharedPtr m_graphicsEventsProfiler
 Main loop graphics events profiler. More...
 
MainLoopTaskProfilerSharedPtr m_inputProfiler
 Main loop input profiler. More...
 
MainLoopTaskProfilerSharedPtr m_userUpdateProfiler
 The user update profiler. More...
 
MainLoopTaskProfilerSharedPtr m_resourceManagerUpdateProfiler
 Main loop resource manager update profiler. More...
 
MainLoopTaskProfilerSharedPtr m_taskDispatcherProfiler
 Main loop task dispatcher profiler. More...
 
MainLoopTaskProfilerSharedPtr m_taskSchedulerProfiler
 Main loop task scheduler profiler. More...
 
MainLoopTaskProfilerSharedPtr m_layoutProfiler
 Main loop layout profiler. More...
 
MainLoopTaskProfilerSharedPtr m_screenLayoutProfiler
 Main loop screen layout profiler. More...
 
MainLoopTaskProfilerSharedPtr m_screenExtractProfiler
 Main loop screen extract profiler. More...
 
MainLoopTaskProfilerSharedPtr m_hudProfiler
 Main loop HUD profiler. More...
 
MainLoopTaskProfilerSharedPtr m_taskSchedulerInternalProfiler
 Main loop internal task scheduler profiler. More...
 
MainLoopTaskProfilerSharedPtr m_taskExecutionInternalProfiler
 Main loop internal task execution profiler. More...
 
MainLoopTaskProfilerSharedPtr m_taskDispatchProfiler
 Main loop task dispatch profiler. More...
 
MainLoopTaskProfilerSharedPtr m_timerProfiler
 Main loop timer profiler. More...
 
MainLoopTaskProfilerSharedPtr m_presentProfiler
 Main loop present profiler. More...
 
MainLoopTaskProfilerSharedPtr m_yieldProfiler
 Main loop yield profiler. More...
 
MainLoopTaskProfilerSharedPtr m_suspendProfiler
 Main loop suspend profiler. More...
 
MainLoopTaskProfilerSharedPtr m_frameProfiler
 Main loop frame profiler. More...
 

Additional Inherited Members

- Public Types inherited from kanzi::ProfilerRegistry< MainLoopTaskProfiler >
typedef shared_ptr< MainLoopTaskProfilerProfilerSharedPtr
 The profiler shared point type. More...
 
typedef unordered_set< ProfilerSharedPtrProfilerContainer
 The profiler container type. More...
 
- Protected Attributes inherited from kanzi::ProfilerRegistry< MainLoopTaskProfiler >
ProfilerContainer m_registeredProfilers
 The registered profilers. More...
 

Detailed Description

The registry of main loop task profilers.

Constructor & Destructor Documentation

kanzi::MainLoopTaskProfilerRegistry::MainLoopTaskProfilerRegistry ( )
inlineexplicit

Constructor.

Member Function Documentation

void kanzi::MainLoopTaskProfilerRegistry::initialize ( optional< size_t >  bufferSizeOverride)
inline
size_t kanzi::MainLoopTaskProfilerRegistry::getMainLoopCounter ( ) const
inline

To get the value of the main loop counter, use getMainLoopCounter().

void kanzi::MainLoopTaskProfilerRegistry::incrementMainLoopCounter ( )
inline

Increments the main loop counter.

Do not use this function directly. The Kanzi main loop calls it internally.

Member Data Documentation

MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_animationProfiler

Main loop animation profiler.

On every Kanzi main loop iteration, the profiler measures the time spent rendering animation.

See also
TimelinePlayback
Note
The profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_renderingProfiler

Main loop rendering profiler.

On every Kanzi main loop iteration, the profiler measures the time spent rendering the screen in Application::renderOverride().

Note
The profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_applicationEventsProfiler

Main loop application events profiler.

On every Kanzi main loop iteration, the profiler measures the time spent gathering and handling events from all available event sources, such as keyboard, mouse, and other available manipulators.

See also
EventSource
Note
The profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_appUpdateProfiler

Main loop application update profiler.

On every Kanzi main loop iteration, the profiler measures the time spent inside the user-provided Application::update() override.

Note
The profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_resourceDeploymentProfiler

Main loop resource deployment profiler.

On every Kanzi main loop iteration, the profiler measures the time spent processing asynchronous task deployment queue.

See also
Application::progressDeploymentQueue()
Note
The profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_graphicsEventsProfiler

Main loop graphics events profiler.

On every Kanzi main loop iteration, the profiler measures the time spent processing events that affect graphics output, such as KZS_EVENT_WINDOW_RESIZED and KZS_EVENT_WINDOW_RESIZE_REQUESTED.

See also
GraphicsOutput, KzsEventType
Note
The profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_inputProfiler

Main loop input profiler.

On every Kanzi main loop iteration, the profiler measures the time spent by InputManager in processing various input events, including input events from keyboard and mouse.

See also
InputManager::processEvents()
Note
Available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_userUpdateProfiler

The user update profiler.

On every Kanzi main loop iteration, the profiler measures the time spent executing user-provided update logic callback Application::onUpdate().

Note
Available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_resourceManagerUpdateProfiler

Main loop resource manager update profiler.

On every Kanzi main loop iteration, the profiler measures the time consumed by the resource manager to process load and deployment queues.

See also
ResourceManager::update()
Note
Available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_taskDispatcherProfiler

Main loop task dispatcher profiler.

On every Kanzi main loop iteration, the profiler measures the time spent executing tasks added to KzuTaskScheduler.

See also
TaskDispatcherBase::executeTasks()
Note
Available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_taskSchedulerProfiler

Main loop task scheduler profiler.

On every Kanzi main loop iteration, the profiler measures the time spent executing periodic tasks added to TaskDispatcher, including animation.

See also
kzuTaskSchedulerExecuteAllTasks()
Note
This profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_layoutProfiler

Main loop layout profiler.

On every Kanzi main loop iteration, the profiler measures the performance of the layout pass.

See also
Application::update2()
Note
This profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_screenLayoutProfiler

Main loop screen layout profiler.

On every Kanzi main loop iteration, the profiler measures the performance of the screen layout.

See also
Node2D, Node2D::layout()
Note
This profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_screenExtractProfiler

Main loop screen extract profiler.

On every Kanzi main loop iteration, the profiler measures the performance of the screen extract.

See also
Node2D, Node2D::extract()
Note
This profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_hudProfiler

Main loop HUD profiler.

On every Kanzi main loop iteration, the profiler measures the overhead caused by rendering the HUD information.

Note
This profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_taskSchedulerInternalProfiler

Main loop internal task scheduler profiler.

On every Kanzi main loop iteration, the profiler measures the time spent executing periodic tasks added to Scheduler

See also
Scheduler::executeTasks()
Note
This profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_taskExecutionInternalProfiler

Main loop internal task execution profiler.

On every Kanzi main loop iteration, the profiler measures the time spent executing individual tasks added to Scheduler

See also
Scheduler::executeTasks()
Note
This profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_taskDispatchProfiler

Main loop task dispatch profiler.

On every Kanzi main loop iteration, the profiler measures the time spent executing an individual task added to KzuTaskScheduler.

See also
kzuTaskSchedulerExecuteAllTasks()
Note
This profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_timerProfiler

Main loop timer profiler.

On every Kanzi main loop iteration, the profiler measures the time spent executing timer callbacks.

See also
kzuMessageDispatcherDispatchQueuedMessages()
Note
This profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_presentProfiler

Main loop present profiler.

On every Kanzi main loop iteration, the profiler measures the time spent presenting graphics output

See also
GraphicsOutput::present()
Note
This profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_yieldProfiler

Main loop yield profiler.

On every Kanzi main loop iteration, the profiler measures the time spent yielded

See also
Application::yield()
Note
This profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_suspendProfiler

Main loop suspend profiler.

On every Kanzi main loop iteration, the profiler measures the time spent suspended

See also
Application::suspend()
Note
This profiler is available in Kanzi profiling build only.
MainLoopTaskProfilerSharedPtr kanzi::MainLoopTaskProfilerRegistry::m_frameProfiler

Main loop frame profiler.

On every Kanzi main loop iteration, the profiler measures the total time spent per frame

See also
Application::runOverride()
Note
This profiler is available in Kanzi profiling build only.

The documentation for this class was generated from the following file: